German patent document DE 10 2006 016 891 A1 discusses a method for transmitting program codes to a program memory.
Modern motor vehicles contain one or more electronic controllers which contain a program memory which can be programmed, i.e. can have program codes written to it, when the controller is in the installed state. The program memory is usually what is known as a flash memory, which is frequently also integrated in a microcontroller.
Standard controllers contain an interface, also called diagnosis interface, which is used for transmitting commands and data. The interface used is frequently a “CAN” bus. A standard diagnosis protocol is UDS based on ISO 14229. These are cited mainly by way of example, since there are a multiplicity of other interfaces and protocols.
The controller usually also contains a piece of diagnosis software which uses the diagnosis interface to provide commands for erasing and programming the program memory. This software is frequently called a “bootloader”.
For the purpose of communication with the controller, a programming appliance is used which has the requisite counterpart to the diagnosis interface in the controller. Such a programming appliance is frequently also called a diagnosis appliance or diagnosis tester. In practice, this programming appliance is today often a personal computer, such as a laptop.
When controllers are programmed, very large volumes of data for program codes are transmitted, which is very time-consuming using today's methods. Controllers in motor vehicles are frequently general-purpose controllers which are individually programmed for the respective motor vehicle at the end of the line during the manufacture of the motor vehicle. The time requirement for programming the controller is therefore a critical factor for the manufacture of the motor vehicle and needs to be as short as possible.
During operation of the motor vehicle too, changes (what are known as upgrades) of the software need to be made in practice, which is normally done in a workshop. In this case too, the period of time for reprogramming the controller needs to be kept as short as possible.
German patent document DE 10 2006 016 891 A1, cited at the outset, is concerned with the subsequent change to the software of a controller and distinguishes between a piece of mass-produced software and a piece of “upload software”. To reduce the level of involvement for subsequently loading the upload software, said document proposes providing two separate memory areas, namely one for the mass-produced software and one for the upload software. In order to extend the functionality of the controller, it is then merely necessary to transmit the upload software to the separate memory area rather than the entire software.
This does not result in any advantages for the initial programming of the controller.